module engine {
    export class Color implements ecs.IEquatable<Color> {
        private _packedValue: number;
        public get PackedValue(){
            return this._packedValue;
        }

        public set PackedValue(value: number){
            this._packedValue = value;
        }

        /**
         * 菊蓝色 (R:100,G:149,B:237,A:255).
         */
        public static CornflowerBlue;

        /**
         * 根据打包值构造RGBA颜色。 
         * 该值是一个32位无符号整数，R最低有效八位字节。
         * @param packedValue 
         */
        constructor(packedValue: number){
            this._packedValue = packedValue;
        }

        static Color(){
            Color.CornflowerBlue = new Color(0xffed9564);
        }

        /**
         * 比较当前实例是否等于指定的实例
         * @param other 
         */
        Equals(other: Color): boolean {
            return this.PackedValue == other.PackedValue;
        }
    }
}